package com.example.mq.mqserver.datacenter;

import com.example.mq.mqserver.core.Binding;
import com.example.mq.mqserver.core.Exchange;
import com.example.mq.mqserver.core.MSGQueue;

import java.util.List;

public interface IDataBaseManager {

    /**
     * 初始化数据库
     */
    void init();
    /**
     * 销毁数据库
     */
    void destroyDB();


    /**
     * 插入交换机
     * @param exchange
     */
    void insertExchange(Exchange exchange);
    /**
     * 删除交换机
     * @param exchange 交换机
     */
    void deleteExchange(Exchange exchange);
    /**
     * 获取所有交换机
     * @return 交换机集合
     */
    List<Exchange> selectAllExchange();


    /**
     * 插入队列
     * @param queue
     */
    void insertQueue(MSGQueue queue);
    /**
     * 删除队列
     * @param queue
     */
    void deleteQueue(MSGQueue queue);
    /**
     * 查询所有队列
     * @return 所有队列集合
     */
    List<MSGQueue> selectAllQueue();


    /**
     * 插入绑定
     * @param binding
     */
    void insertBind(Binding binding);
    /**
     * 删除绑定
     * @param binding
     */
    void deleteBinding(Binding binding);
    /**
     * 获取所有绑定
     * @return 所有绑定集合
     */
    List<Binding> selectAllBinding();

}
